﻿/*      jQuery MegaMenu Plugin
Author: GeekTantra
Author URI: http://www.geektantra.com
Editado por: Danilo Miranda     */
$j = jQuery.noConflict();
var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;

$j.fn.megamenu = function (options) {
    options = $j.extend({
        activate_action: "mouseover",
        deactivate_action: "mouseleave",
        show_method: "slideDown",
        hide_method: "slideUp",
        justify: "left",
        mm_timeout: 250
    }, options);
    var $megamenu_object = this;
    if (options.activate_action == "click") options.mm_timeout = 0;
    $megamenu_object.children("li").each(function () {
        $j(this).addClass("mm-item");
        $j(".mm-item").css({ 'float': options.justify });

        $j(this).find("div:first").addClass("mm-item-content");
        $j(this).find("a:first").addClass("mm-item-link");
        var $mm_item_content = $j(this).find(".mm-item-content");
        var $mm_item_link = $j(this).find(".mm-item-link");
        $mm_item_content.hide();

        $j(document).bind("click", function () {
            $j(".mm-item-content").hide();
            $j(".mm-item-link").removeClass("mm-item-link-hover");
        });
        $j(this).bind("click", function (e) {
            e.stopPropagation();
        });
        $mm_item_content.wrapInner('<div class="mm-content-base"></div>');

        var $mm_timer = 0;
        // Início do Método de Ativação
        $j(this).bind(options.activate_action, function (e) {
            e.stopPropagation();
            var mm_item_link_obj = $j(this).find("a.mm-item-link");
            var mm_item_content_obj = $j(this).find("div.mm-item-content");
            clearTimeout($mm_timer);
            $mm_timer = setTimeout(function () { //Emular HoverIntent
                mm_item_link_obj.addClass("mm-item-link-hover");
                mm_item_content_obj.css({
                    'top': ($mm_item_link.offset().top + $mm_item_link.outerHeight()) - 1 + "px",
                    'left': ($mm_item_link.offset().left) - 5 + 'px'
                })

                var mm_object_right_end = $megamenu_object.offset().left + $megamenu_object.outerWidth();
                // Coordenadas da extremidade direita do objeto megamenu
                var mm_content_right_end = $mm_item_link.offset().left + $mm_item_content.outerWidth() - 5;
                // Coordenadas da extremidade direita do conteúdo megamenu
                if (mm_content_right_end >= mm_object_right_end) { // Conteúdo do menu superior da caixa externa
                    mm_item_content_obj.css({
                        'left': ($mm_item_link.offset().left - (mm_content_right_end - mm_object_right_end)) - 2 + 'px'
                    }); // Limite megamenu dentro da caixa exterior
                }

                switch (options.show_method) {
                    case "slideDown":
                        mm_item_content_obj.height("auto");
                        mm_item_content_obj.slideDown('fast');
                        break;
                }
            }, options.mm_timeout);
        });
        // Final do Método de Ativação
        // Início do Método de Desativação
        $j(this).bind(options.deactivate_action, function (e) {
            e.stopPropagation();
            clearTimeout($mm_timer);
            var mm_item_link_obj = $j(this).find("a.mm-item-link");
            var mm_item_content_obj = $j(this).find("div.mm-item-content");
            switch (options.hide_method) {
                case "slideUp":
                    mm_item_content_obj.slideUp('fast', function () {
                        mm_item_link_obj.removeClass("mm-item-link-hover");
                    });
                    break;
            }
            if (mm_item_content_obj.length < 1) mm_item_link_obj.removeClass("mm-item-link-hover");
        });
        //    Final do Método de Desativação
    });
    this.find(">li:last").after('<li class="clear-fix"></li>');
    this.show();
};
